This is a detailed summary from the Global Terrorist Database and therein India specific analysis as well.

- Globally, we see that there is an exponential increase in attacks from 2012 onwards and it has skyrocketed.
- India has seen spikes in 1985-86 due to Kashmir & 2007-09 due to the Mumbai attacks.


- Iraq has seen the most number of attacks and they have high casualty.
- Iraq, Afghanistan, Pakistan,Syria are all related to the Global war on terror, ISIS.
- India numbers are related to all the Pakistan terrorist attacks.
- Sri Lanka numbers are from the LTTE wars
- Nigeria/Somalia are from the Civil wars and Boko Haram terrorist attacks.
- United States is related to 9/11 attacks. IT has the low killed numbers but high on the wounded.
- Colombia is likely Escobar and the drug related gang wars.

- Middle East/Africa are the center of Civil wars and Global terrorist regions.
- South Asia will include India,Pakistan, Afghanistan


- Global
- As we saw from the country graph, Iraq=Baghdad/Ninewah/Al Anbar/Saladin are the highest in the kill number.
- Borno is Nigeria
- Punjab in India saw the highest terrorist attacks during the Pakistan and Khalistan movement.
- New York has the highest killed during the 9/11
- India
- As we saw earlier, J&K and Punjab started the trend of violence.
- Maoist have seen their rise in Assam/Chhattisgarh/Maharashtra etc.


Global Most of the cities in Iraq and Somalia are having the high numbers. * We also see cities like Colombo(LTTE), Medellin(Escobar)
- India
- Cities across J&K + Punjab are seen along with Mumbai after the Mumbai blasts.



Global Citizens/Police/Military are the maximum casualty.

Global Police/Military/Govt are the main targets.
India Police are the main targets of attacks and the attacks in Kashmir/Punjab are evidence. * Informats and Political rallies are also key targets.



Now let see if we can see any trend in the usage of “weaptype1_txt” over the years.


LS0tCnRpdGxlOiAiQW5hbHlzaXMgb2YgdGVycm9yaXN0IGF0dGFja3MgYWNyb3NzIHRoZSB3b3JsZCIKb3V0cHV0OiBodG1sX25vdGVib29rCnRoZW1lOiBzaW1wbGV4Ci0tLQoKYGBge3IgZ2xvYmFsX29wdGlvbnMsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChmaWcud2lkdGg9NiwgZmlnLmFzcD0wLjYxOCxvdXQud2lkdGggPSAiNzAlIixmaWcuYWxpZ24gPSJjZW50ZXIiLGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHJvd3MucHJpbnQ9MzAsY29scy5wcmludD0xMCkKCmBgYAoKCmBgYHtyIGxvYWRfbGlic30KbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkocmVhZHhsKQpsaWJyYXJ5KGRhdGEudGFibGUpCmxpYnJhcnkodHJlZW1hcCkKbGlicmFyeShnZ3Bsb3QyKQpsaWJyYXJ5KGdyaWRFeHRyYSkKdGhlbWVfc2V0KHRoZW1lX2dyYXkoKSkKIyBsaWJyYXJ5KHJlYWRyKQoKYGBgCgpgYGB7cn0KZGY8LWZyZWFkKCIvVXNlcnMvdmluYXljaHVyaS9WSU5BWS9kYXRhc2V0L3RlcnJvcmlzdC9nbG9iYWx0ZXJyb3Jpc21kYl8wNzE4ZGlzdC5jc3YiKQpkZjwtZGYlPiVmaWx0ZXIobmtpbGw+MCkKYGBgCgpgYGB7cixpbmNsdWRlPUZBTFNFfQpnbGltcHNlKGRmKQpgYGAKClRoaXMgaXMgYSBkZXRhaWxlZCBzdW1tYXJ5IGZyb20gdGhlIEdsb2JhbCBUZXJyb3Jpc3QgRGF0YWJhc2UgYW5kIHRoZXJlaW4gSW5kaWEgc3BlY2lmaWMgYW5hbHlzaXMgYXMgd2VsbC4KCmBgYHtyICxmaWcuY2FwPSJUcmVuZCBhY3Jvc3MgdGhlIHllYXJzIiwgZmlnLndpZHRoPTYuMixmaWcuaGVpZ2h0PTMuMn0KcDE8LWRmJT4lCiAgY291bnQoaXllYXIpJT4lCiAgZ2dwbG90KGFlcyhpeWVhcixuKSkrCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcz1zZXEoMTk3MCwgMjAxNywgYnkgPSA1KSkrCiAgZ2VvbV9saW5lKCkrCiAgbGFicyh0aXRsZT0iVHJlbmQgYWNyb3NzIHRoZSB5ZWFycyIsc3VidGl0bGU9Ikdsb2JhbCIseD0iWWVhciIseT0iQ291bnRzIikKCnAyPC1kZiU+JQogIGZpbHRlcihjb3VudHJ5X3R4dD09J0luZGlhJyklPiUKICBjb3VudChpeWVhciklPiUKICBnZ3Bsb3QoYWVzKGl5ZWFyLG4pKSsKICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzPXNlcSgxOTcwLCAyMDE3LCBieSA9IDUpKSsKICBnZW9tX2xpbmUoKSsKICBsYWJzKHRpdGxlPSJUcmVuZCBhY3Jvc3MgdGhlIHllYXJzIixzdWJ0aXRsZT0iSW5kaWEiLHg9IlllYXIiLHk9IkNvdW50cyIpCgpncmlkLmFycmFuZ2UocDEscDIsbmNvbD0xKQpybShwMSxwMikKCmBgYAoKKiBHbG9iYWxseSwgd2Ugc2VlIHRoYXQgdGhlcmUgaXMgYW4gZXhwb25lbnRpYWwgaW5jcmVhc2UgaW4gYXR0YWNrcyBmcm9tIDIwMTIgb253YXJkcyBhbmQgaXQgaGFzIHNreXJvY2tldGVkLgoqIEluZGlhIGhhcyBzZWVuIHNwaWtlcyBpbiAxOTg1LTg2IGR1ZSB0byBLYXNobWlyICYgMjAwNy0wOSBkdWUgdG8gdGhlIE11bWJhaSBhdHRhY2tzLgoKCgpgYGB7ciAsIGZpZy53aWR0aD02LjJ9CgpkZiU+JQogIGdyb3VwX2J5KGNvdW50cnlfdHh0KSU+JQogIHN1bW1hcmlzZShua2lsbD1zdW0obmtpbGwpKSU+JQogIHRvcF9uKG49NTAsd3Q9bmtpbGwpJT4lCiAgdW5ncm91cCgpJT4lCiAgc2VsZWN0KGNvdW50cnlfdHh0LG5raWxsKSU+JQogIHRyZWVtYXAoaW5kZXg9ImNvdW50cnlfdHh0Iix2U2l6ZSA9ICJua2lsbCIsdGl0bGUgPSAiU3VtbWFyeSBvZiBraWxscyBwZXIgY291bnRyeShUb3AgNTApIixwYWxldHRlID0gIkFjY2VudCIpCgoKCmRmICU+JQogIGdyb3VwX2J5KGNvdW50cnlfdHh0KSAlPiUKICBzdW1tYXJpc2UobmsgPSBzdW0obmtpbGwpKSAlPiUKICB0b3Bfbig1MCwgd3QgPSBuaykgJT4lCiAgdW5ncm91cCAtPiBkZmtwX3RvcAoKZGYgJT4lIAogIGZpbHRlcihjb3VudHJ5X3R4dCAlaW4lIGRma3BfdG9wJGNvdW50cnlfdHh0KSAlPiUgCiAgZ3JvdXBfYnkoY291bnRyeV90eHQsIGl5ZWFyKSAlPiUgCiAgc3VtbWFyaXNlKG5rID0gc3VtKG5raWxsKSkgJT4lIAogIHVuZ3JvdXAgLT4gZGZrcAoKCnRyZWVtYXAoCiAgZGZrcCwKICAjWW91ciBkYXRhIGZyYW1lIG9iamVjdAogIGluZGV4ID0gYygiY291bnRyeV90eHQiLCAiaXllYXIiKSwKICB0eXBlID0gInZhbHVlIiwKICB2U2l6ZSA9ICJuayIsCiAgdkNvbG9yID0gIm5rIiwKICBwYWxldHRlID0gIlJkQnUiLAogIHRpdGxlID0gIktpbGxpbmdzIGluIENvdW50cnkvWWVhcnMtR2xvYmFsIChUb3AgNTApIiwKICB0aXRsZS5sZWdlbmQgPSAiTnVtYmVyIG9mIGtpbGxlZCIsCiAgZm9udHNpemUudGl0bGUgPSAxMAopCgpybShkZmtwLGRma3BfdG9wKQoKYGBgCgoqIElyYXEgaGFzIHNlZW4gdGhlIG1vc3QgbnVtYmVyIG9mIGF0dGFja3MgYW5kIHRoZXkgaGF2ZSBoaWdoIGNhc3VhbHR5LgoqIElyYXEsIEFmZ2hhbmlzdGFuLCBQYWtpc3RhbixTeXJpYSBhcmUgYWxsIHJlbGF0ZWQgdG8gdGhlIEdsb2JhbCB3YXIgb24gdGVycm9yLCBJU0lTLgoqIEluZGlhIG51bWJlcnMgYXJlIHJlbGF0ZWQgdG8gYWxsIHRoZSBQYWtpc3RhbiB0ZXJyb3Jpc3QgYXR0YWNrcy4KKiBTcmkgTGFua2EgbnVtYmVycyBhcmUgZnJvbSB0aGUgTFRURSB3YXJzCiogTmlnZXJpYS9Tb21hbGlhIGFyZSBmcm9tIHRoZSBDaXZpbCB3YXJzIGFuZCBCb2tvIEhhcmFtIHRlcnJvcmlzdCBhdHRhY2tzLgoqIFVuaXRlZCBTdGF0ZXMgaXMgcmVsYXRlZCB0byA5LzExIGF0dGFja3MuIElUIGhhcyB0aGUgbG93IGtpbGxlZCBudW1iZXJzIGJ1dCBoaWdoIG9uIHRoZSB3b3VuZGVkLgoqIENvbG9tYmlhIGlzIGxpa2VseSBFc2NvYmFyIGFuZCB0aGUgZHJ1ZyByZWxhdGVkIGdhbmcgd2Fycy4KCgpgYGB7ciAsIGZpZy53aWR0aD02LjJ9CgpkZiU+JQogIGZpbHRlcihua2lsbD4wKSU+JQogIHNlbGVjdChyZWdpb25fdHh0LG5raWxsKSU+JQogIHRyZWVtYXAoaW5kZXg9InJlZ2lvbl90eHQiLHZTaXplID0gIm5raWxsIix0aXRsZSA9ICJTdW1tYXJ5IG9mIGtpbGxzIHBlciByZWdpb24iLHBhbGV0dGUgPSAiU2V0MSIpCmBgYAoKKiBNaWRkbGUgRWFzdC9BZnJpY2EgYXJlIHRoZSBjZW50ZXIgb2YgQ2l2aWwgd2FycyBhbmQgR2xvYmFsIHRlcnJvcmlzdCByZWdpb25zLgoqIFNvdXRoIEFzaWEgd2lsbCBpbmNsdWRlIEluZGlhLFBha2lzdGFuLCBBZmdoYW5pc3RhbgoKCmBgYHtyICwgZmlnLndpZHRoPTYuMn0KZGYgJT4lCiAgZmlsdGVyKG5raWxsID4gMCkgJT4lCiAgZ3JvdXBfYnkocHJvdnN0YXRlKSAlPiUKICBzdW1tYXJpc2UobmsgPSBzdW0obmtpbGwpKSAlPiUKICB0b3Bfbig1MCwgd3QgPSBuaykgJT4lCiAgdW5ncm91cCAtPiBkZmtwX3RvcAoKZGYgJT4lIAogIGZpbHRlcihua2lsbD4wKSU+JQogIGZpbHRlcihwcm92c3RhdGUgJWluJSBkZmtwX3RvcCRwcm92c3RhdGUpICU+JSAKICBncm91cF9ieShwcm92c3RhdGUsIGl5ZWFyKSAlPiUgCiAgc3VtbWFyaXNlKG5rID0gc3VtKG5raWxsKSkgJT4lIAogIHVuZ3JvdXAgLT4gZGZrcAoKCnRyZWVtYXAoCiAgZGZrcCwKICAjWW91ciBkYXRhIGZyYW1lIG9iamVjdAogIGluZGV4ID0gYygicHJvdnN0YXRlIiwgIml5ZWFyIiksCiAgdHlwZSA9ICJ2YWx1ZSIsCiAgdlNpemUgPSAibmsiLAogIHZDb2xvciA9ICJuayIsCiAgcGFsZXR0ZSA9ICJSZEJ1IiwKICB0aXRsZSA9ICJLaWxsaW5ncyBpbiBQcm92aW5jZXMvWWVhcnMtR2xvYmFsIiwKICB0aXRsZS5sZWdlbmQgPSAiTnVtYmVyIG9mIGtpbGxlZCIsCiAgZm9udHNpemUudGl0bGUgPSAxMAopCgoKZGYgJT4lCiAgZmlsdGVyKG5raWxsID4gMCAmIGNvdW50cnlfdHh0PT0nSW5kaWEnKSAlPiUKICBncm91cF9ieShwcm92c3RhdGUpICU+JQogIHN1bW1hcmlzZShuayA9IHN1bShua2lsbCkpICU+JQogIHRvcF9uKDUwLCB3dCA9IG5rKSAlPiUKICB1bmdyb3VwIC0+IGRma3BfdG9wCgpkZiAlPiUgCiAgZmlsdGVyKG5raWxsPjAgJiBjb3VudHJ5X3R4dD09J0luZGlhJyklPiUKICBmaWx0ZXIocHJvdnN0YXRlICVpbiUgZGZrcF90b3AkcHJvdnN0YXRlKSAlPiUgCiAgZ3JvdXBfYnkocHJvdnN0YXRlLCBpeWVhcikgJT4lIAogIHN1bW1hcmlzZShuayA9IHN1bShua2lsbCkpICU+JSAKICB1bmdyb3VwIC0+IGRma3AKCgp0cmVlbWFwKAogIGRma3AsCiAgI1lvdXIgZGF0YSBmcmFtZSBvYmplY3QKICBpbmRleCA9IGMoInByb3ZzdGF0ZSIsICJpeWVhciIpLAogIHR5cGUgPSAidmFsdWUiLAogIHZTaXplID0gIm5rIiwKICB2Q29sb3IgPSAibmsiLAogIHBhbGV0dGUgPSAiUmRCdSIsCiAgdGl0bGUgPSAiS2lsbGluZ3MgaW4gUHJvdmluY2VzL1llYXJzLUluZGlhIiwKICB0aXRsZS5sZWdlbmQgPSAiTnVtYmVyIG9mIGtpbGxlZCIsCiAgZm9udHNpemUudGl0bGUgPSAxMAopCgpybShkZmtwLGRma3BfdG9wKQpgYGAKCiogR2xvYmFsCiAgKiBBcyB3ZSBzYXcgZnJvbSB0aGUgY291bnRyeSBncmFwaCwgSXJhcT1CYWdoZGFkL05pbmV3YWgvQWwgQW5iYXIvU2FsYWRpbiBhcmUgdGhlIGhpZ2hlc3QgaW4gdGhlIGtpbGwgbnVtYmVyLgogICogQm9ybm8gaXMgTmlnZXJpYQogICogUHVuamFiIGluIEluZGlhIHNhdyB0aGUgaGlnaGVzdCB0ZXJyb3Jpc3QgYXR0YWNrcyBkdXJpbmcgdGhlIFBha2lzdGFuIGFuZCBLaGFsaXN0YW4gbW92ZW1lbnQuCiAgKiBOZXcgWW9yayBoYXMgdGhlIGhpZ2hlc3Qga2lsbGVkIGR1cmluZyB0aGUgOS8xMQoqIEluZGlhCiAgKiBBcyB3ZSBzYXcgZWFybGllciwgSiZLIGFuZCBQdW5qYWIgc3RhcnRlZCB0aGUgdHJlbmQgb2YgdmlvbGVuY2UuCiAgKiBNYW9pc3QgaGF2ZSBzZWVuIHRoZWlyIHJpc2UgaW4gQXNzYW0vQ2hoYXR0aXNnYXJoL01haGFyYXNodHJhIGV0Yy4gCgoKYGBge3IsZmlnLndpZHRoPTYuMn0KCmRmICU+JQogIGZpbHRlcihua2lsbCA+IDApICU+JQogIGdyb3VwX2J5KGNpdHkpICU+JQogIHN1bW1hcmlzZShuayA9IHN1bShua2lsbCkpICU+JQogIHRvcF9uKDUwLCB3dCA9IG5rKSAlPiUKICB1bmdyb3VwIC0+IGRma3BfdG9wCgpkZiAlPiUgCiAgZmlsdGVyKG5raWxsPjApJT4lCiAgZmlsdGVyKGNpdHkgJWluJSBkZmtwX3RvcCRjaXR5KSAlPiUgCiAgZ3JvdXBfYnkoY2l0eSwgaXllYXIpICU+JSAKICBzdW1tYXJpc2UobmsgPSBzdW0obmtpbGwpKSAlPiUgCiAgdW5ncm91cCAtPiBkZmtwCgoKdHJlZW1hcCgKICBkZmtwLAogICNZb3VyIGRhdGEgZnJhbWUgb2JqZWN0CiAgaW5kZXggPSBjKCJjaXR5IiwgIml5ZWFyIiksCiAgdHlwZSA9ICJ2YWx1ZSIsCiAgdlNpemUgPSAibmsiLAogIHZDb2xvciA9ICJuayIsCiAgcGFsZXR0ZSA9ICJSZEJ1IiwKICB0aXRsZSA9ICJLaWxsaW5ncyBpbiBDaXR5L1llYXJzLUdsb2JhbCIsCiAgdGl0bGUubGVnZW5kID0gIk51bWJlciBvZiBraWxsZWQiLAogIGZvbnRzaXplLnRpdGxlID0gMTAKKQoKCmRmICU+JQogIGZpbHRlcihua2lsbCA+IDAgJiBjb3VudHJ5X3R4dD09J0luZGlhJykgJT4lCiAgZ3JvdXBfYnkoY2l0eSkgJT4lCiAgc3VtbWFyaXNlKG5rID0gc3VtKG5raWxsKSkgJT4lCiAgdG9wX24oNTAsIHd0ID0gbmspICU+JQogIHVuZ3JvdXAgLT4gZGZrcF90b3AKCmRmICU+JSAKICBmaWx0ZXIobmtpbGwgPiAwICYgY291bnRyeV90eHQ9PSdJbmRpYScpICU+JQogIGZpbHRlcihjaXR5ICVpbiUgZGZrcF90b3AkY2l0eSkgJT4lIAogIGdyb3VwX2J5KGNpdHksIGl5ZWFyKSAlPiUgCiAgc3VtbWFyaXNlKG5rID0gc3VtKG5raWxsKSkgJT4lIAogIHVuZ3JvdXAgLT4gZGZrcAoKCnRyZWVtYXAoCiAgZGZrcCwKICAjWW91ciBkYXRhIGZyYW1lIG9iamVjdAogIGluZGV4ID0gYygiY2l0eSIsICJpeWVhciIpLAogIHR5cGUgPSAidmFsdWUiLAogIHZTaXplID0gIm5rIiwKICB2Q29sb3IgPSAibmsiLAogIHBhbGV0dGUgPSAiUmRCdSIsCiAgdGl0bGUgPSAiS2lsbGluZ3MgaW4gQ2l0eS9ZZWFycy1JbmRpYSIsCiAgdGl0bGUubGVnZW5kID0gIk51bWJlciBvZiBraWxsZWQiLAogIGZvbnRzaXplLnRpdGxlID0gMTAKKQoKcm0oZGZrcCxkZmtwX3RvcCkKYGBgCgoqR2xvYmFsCiAgKiBNb3N0IG9mIHRoZSBjaXRpZXMgaW4gSXJhcSBhbmQgU29tYWxpYSBhcmUgaGF2aW5nIHRoZSBoaWdoIG51bWJlcnMuCiAgKiBXZSBhbHNvIHNlZSBjaXRpZXMgbGlrZSBDb2xvbWJvKExUVEUpLCBNZWRlbGxpbihFc2NvYmFyKQoKKiBJbmRpYQogICogQ2l0aWVzIGFjcm9zcyBKJksgKyBQdW5qYWIgYXJlIHNlZW4gYWxvbmcgd2l0aCBNdW1iYWkgYWZ0ZXIgdGhlIE11bWJhaSBibGFzdHMuCiAgCgoKYGBge3J9CmRmJT4lCiAgZ3JvdXBfYnkoYXR0YWNrdHlwZTFfdHh0KSU+JQogIHN1bW1hcmlzZShua2lsbD1zdW0obmtpbGwpKSU+JQogIHVuZ3JvdXAoKSU+JQogIGdncGxvdChhZXMocmVvcmRlcihhdHRhY2t0eXBlMV90eHQsbmtpbGwpLG5raWxsKSkrCiAgZ2VvbV9jb2woKSsKICBjb29yZF9mbGlwKCkrCiAgbGFicyh0aXRsZT0iVHJlbmQgYWNyb3NzIGF0dGFja3R5cGUiLHg9ImF0dGFja3R5cGUiLHk9IkNvdW50cyIpCgpkZiU+JQogIGdyb3VwX2J5KHRhcmd0eXBlMV90eHQpJT4lCiAgc3VtbWFyaXNlKG5raWxsPXN1bShua2lsbCkpJT4lCiAgdW5ncm91cCgpJT4lCiAgZ2dwbG90KGFlcyhyZW9yZGVyKHRhcmd0eXBlMV90eHQsbmtpbGwpLG5raWxsKSkrCiAgZ2VvbV9jb2woKSsKICBjb29yZF9mbGlwKCkrCiAgc2NhbGVfeV9jb250aW51b3VzKGxhYmVscz1zY2FsZXM6OmNvbW1hKSsKICBsYWJzKHRpdGxlPSJUcmVuZCBhY3Jvc3MgdGFyZ3R5cGUiLHg9InRhcmd0eXBlIix5PSJDb3VudHMiKQoKCmRmJT4lCiAgZ3JvdXBfYnkoYXR0YWNrdHlwZTFfdHh0LHRhcmd0eXBlMV90eHQpJT4lCiAgc3VtbWFyaXNlKG5raWxsPXN1bShua2lsbCkpJT4lCiAgdW5ncm91cCgpJT4lCiAgdHJlZW1hcChpbmRleD1jKCJhdHRhY2t0eXBlMV90eHQiLCJ0YXJndHlwZTFfdHh0IiksdlNpemUgPSAibmtpbGwiLHRpdGxlID0gIlN1bW1hcnkgb2Yga2lsbHMgYnkgYXR0YWNrIHR5cGUgYW5kIHRhcmdldCIscGFsZXR0ZSA9ICJTZXQyIikKCgoKYGBgCgoqR2xvYmFsCiAgKiBDaXRpemVucy9Qb2xpY2UvTWlsaXRhcnkgYXJlIHRoZSBtYXhpbXVtIGNhc3VhbHR5LgoKCgogCmBgYHtyICwgZmlnLmhlaWdodD00LGZpZy53aWR0aD02fQpkZiR0YXJnc3VidHlwZTFfdHh0PC0gcmVwbGFjZV9uYShkZiR0YXJnc3VidHlwZTFfdHh0LCAnTm90IEtub3duJykKCnAxPC1kZiU+JQogIGNvdW50KHRhcmdzdWJ0eXBlMV90eHQsc29ydD1UKSU+JQogIGhlYWQoMzApJT4lCiAgZ2dwbG90KGFlcyhyZW9yZGVyKHRhcmdzdWJ0eXBlMV90eHQsbiksbikpKwogIGdlb21fY29sKCkrCiAgY29vcmRfZmxpcCgpKwogIGxhYnModGl0bGU9IlRyZW5kIGFjcm9zcyB0YXJnc3VidHlwZSBHbG9iYWxseSIseD0idGFyZ3N1YnR5cGUiLHk9IkNvdW50cyIpCgpwMjwtZGYlPiUKICBmaWx0ZXIoY291bnRyeV90eHQ9PSdJbmRpYScpJT4lCiAgY291bnQodGFyZ3N1YnR5cGUxX3R4dCxzb3J0PVQpJT4lCiAgaGVhZCgzMCklPiUKICBnZ3Bsb3QoYWVzKHJlb3JkZXIodGFyZ3N1YnR5cGUxX3R4dCxuKSxuKSkrCiAgZ2VvbV9jb2woKSsKICBjb29yZF9mbGlwKCkrCiAgbGFicyh0aXRsZT0iVHJlbmQgYWNyb3NzIHRhcmdzdWJ0eXBlIGluIEluZGlhIix4PSJ0YXJnc3VidHlwZSIseT0iQ291bnRzIikKCmdyaWQuYXJyYW5nZShwMSxwMixuY29sPTEpCnJtKHAxLHAyKQoKCmBgYAoKKkdsb2JhbAogICogUG9saWNlL01pbGl0YXJ5L0dvdnQgYXJlIHRoZSBtYWluIHRhcmdldHMuCgoqSW5kaWEKICAqIFBvbGljZSBhcmUgdGhlIG1haW4gdGFyZ2V0cyBvZiBhdHRhY2tzIGFuZCB0aGUgYXR0YWNrcyBpbiBLYXNobWlyL1B1bmphYiBhcmUgZXZpZGVuY2UuCiAgKiBJbmZvcm1hdHMgYW5kIFBvbGl0aWNhbCByYWxsaWVzIGFyZSBhbHNvIGtleSB0YXJnZXRzLgoKCmBgYHtyICwgZmlnLmhlaWdodD00LGZpZy53aWR0aD02fQpwMTwtZGYlPiUKICBjb3VudCh3ZWFwdHlwZTFfdHh0LHNvcnQ9VCklPiUKICBoZWFkKDMwKSU+JQogIGdncGxvdChhZXMocmVvcmRlcih3ZWFwdHlwZTFfdHh0LG4pLG4pKSsKICBnZW9tX2NvbCgpKwogIGNvb3JkX2ZsaXAoKSsKICBsYWJzKHRpdGxlPSJUcmVuZCBhY3Jvc3Mgd2VhcHR5cGUiLHN1YnRpdGxlPSJHbG9iYWxseSIseD0id2VhcHR5cGUiLHk9IkNvdW50cyIpCgoKcDI8LWRmJT4lCiAgZmlsdGVyKGNvdW50cnlfdHh0PT0nSW5kaWEnKSU+JQogIGNvdW50KHdlYXB0eXBlMV90eHQsc29ydD1UKSU+JQogIGhlYWQoMzApJT4lCiAgZ2dwbG90KGFlcyhyZW9yZGVyKHdlYXB0eXBlMV90eHQsbiksbikpKwogIGdlb21fY29sKCkrCiAgY29vcmRfZmxpcCgpKwogIGxhYnModGl0bGU9IlRyZW5kIGFjcm9zcyB3ZWFwdHlwZSIsc3VidGl0bGU9IkluZGlhIix4PSJ3ZWFwdHlwZSIseT0iQ291bnRzIikKCmdyaWQuYXJyYW5nZShwMSxwMikKcm0ocDEscDIpCmBgYAoKYGBge3J9CmRmJHdlYXBzdWJ0eXBlMV90eHQ8LSByZXBsYWNlX25hKGRmJHdlYXBzdWJ0eXBlMV90eHQsICdOb3QgS25vd24nKQoKZGYlPiUKICBjb3VudCh3ZWFwc3VidHlwZTFfdHh0LHNvcnQ9VCklPiUKICBoZWFkKDMwKSU+JQogIGdncGxvdChhZXMocmVvcmRlcih3ZWFwc3VidHlwZTFfdHh0LG4pLG4pKSsKICBnZW9tX2NvbCgpKwogIGNvb3JkX2ZsaXAoKSsKICBsYWJzKHRpdGxlPSJUcmVuZCBhY3Jvc3Mgd2VhcHN1YnR5cGUiLHg9IndlYXBzdWJ0eXBlIix5PSJDb3VudHMiKQoKCgoKYGBgCgoKCmBgYHtyfQpkZiR3ZWFwZGV0YWlsPC0gcmVwbGFjZV9uYShkZiR3ZWFwZGV0YWlsLCJOb3QgS25vd24iKQpkZiU+JQogIGNvdW50KHdlYXBkZXRhaWwsc29ydD1UKSU+JQogIGhlYWQoMzApJT4lCiAgZ2dwbG90KGFlcyhyZW9yZGVyKHdlYXBkZXRhaWwsbiksbikpKwogIGdlb21fY29sKCkrCiAgY29vcmRfZmxpcCgpKwogIGxhYnModGl0bGU9IlRyZW5kIGFjcm9zcyB3ZWFwZGV0YWlsIix4PSJ3ZWFwZGV0YWlsIix5PSJDb3VudHMiKQoKCmBgYAoKCk5vdyBsZXQgc2VlIGlmIHdlIGNhbiBzZWUgYW55IHRyZW5kIGluIHRoZSB1c2FnZSBvZiAid2VhcHR5cGUxX3R4dCIgb3ZlciB0aGUgeWVhcnMuCgpgYGB7cixmaWcud2lkdGg9Ni4yLGZpZy5oZWlnaHQ9M30KIyBkZiU+JQojICAgZ3JvdXBfYnkod2VhcHR5cGUxX3R4dCxpeWVhciklPiUKIyAgIHN1bW1hcmlzZShua2lsbD1zdW0obmtpbGwpKSU+JQojICAgZ2dwbG90KGFlcyhpeWVhcixua2lsbCkpKwojICAgZ2VvbV9jb2woKSsKIyAgIGZhY2V0X3dyYXAofndlYXB0eXBlMV90eHQpCgoKZGYgJT4lCiAgZ3JvdXBfYnkod2VhcHR5cGUxX3R4dCwgaXllYXIpICU+JQogIHN1bW1hcmlzZShua2lsbCA9IHN1bShua2lsbCkpICU+JQogIHVuZ3JvdXAoKSAlPiUKICBnZ3Bsb3QoYWVzKHggPSBpeWVhciwgeSA9IG5raWxsKSkgKwogIGdlb21fY29sKCkrCiAgbGFicyh0aXRsZT0iVHJlbmQgYWNyb3NzIHdlYXB0eXBlMV90eHQtR2xvYmFsIix5PSJ3ZWFwdHlwZTFfdHh0Iix4PSJDb3VudHMiKSsKICBmYWNldF93cmFwKCB+IHdlYXB0eXBlMV90eHQsIHNjYWxlcyA9ICJmcmVlX3kiKQoKCmRmICU+JQogIGZpbHRlcihjb3VudHJ5X3R4dD09J0luZGlhJyklPiUKICBncm91cF9ieSh3ZWFwdHlwZTFfdHh0LCBpeWVhcikgJT4lCiAgc3VtbWFyaXNlKG5raWxsID0gc3VtKG5raWxsKSkgJT4lCiAgdW5ncm91cCgpICU+JQogIGdncGxvdChhZXMoeCA9IGl5ZWFyLCB5ID0gbmtpbGwpKSArCiAgZ2VvbV9jb2woKSsKICBsYWJzKHRpdGxlPSJUcmVuZCBhY3Jvc3Mgd2VhcHR5cGUxX3R4dC1JbmRpYSIseT0id2VhcHR5cGUxX3R4dCIseD0iQ291bnRzIikrCiAgZmFjZXRfd3JhcCggfiB3ZWFwdHlwZTFfdHh0LCBzY2FsZXMgPSAiZnJlZV95IikKCmBgYAoKCgoKCg==